/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.losalpes.report;

import com.losalpes.persistence.entity.ReporteVentasCliente;
import com.losalpes.persistence.entity.ReporteVentasProducto;
import com.losalpes.persistence.entity.ReporteVentasDia;
import com.losalpes.reports.IReportes;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;

/**
 *
 * @author Alejandra
 */

public class ReportBean {
    private String tipReport;
    private Date fechaInicio;
    private Date fechaFin;
    private String ciudad;
    private String cliente;

    @EJB
    private IReportes reportes;

    private List<ReporteVentasProducto> repVtaProd;
    private List<ReporteVentasDia> repVtasDia;
    private List<ReporteVentasCliente> repVtaClie;

    /**
     * Crea una nueva instancia de ReportBean
     */
    public ReportBean() {
 
    }

    /**
     * Obtiene el valor de la ciudad utilizado como filtro para los reportes
     * @return
     */
    public String getCiudad() {
        return ciudad;
    }

    /**
     * Modifica el valor de la ciudad utilizado como filtro para los reportes
     * @param ciudad
     */
    public void setCiudad(String ciudad) {
        this.ciudad = ciudad;
    }

    /**
     * Obtiene el nombre del cliente utilizado como filtro para los reportes
     * @return
     */
    public String getCliente() {
        return cliente;
    }

    /**
     * Modifica el nombre del cliente utilizado como filtro para los reportes
     * @param cliente
     */
    public void setCliente(String cliente) {
        this.cliente = cliente;
    }

    /**
     * Obtiene la fecha de fin para filtrar las ventas
     * @return
     */
    public Date getFechaFin() {
        return fechaFin;
    }

    /**
     * Modifica la fecha de fin para filtrar las ventas
     * @param fechaFin
     */
    public void setFechaFin(Date fechaFin) {
        this.fechaFin = fechaFin;
    }

    /**
     * Obtiene la fecha de inicio para filtrar las ventas
     * @return
     */
    public Date getFechaInicio() {
        return fechaInicio;
    }

    /**
     * Modifica la fecha de inicio para filtrar las ventas
     * @param fechaInicio
     */
    public void setFechaInicio(Date fechaInicio) {
        this.fechaInicio = fechaInicio;
    }

    /**
     * Retorna el reporte que se va a generar
     * C - Ventas por Cliente
     * P - Ventas por Producto
     * D - Vwentas Diarias
     * @return
     */
    public String getTipReport() {
        return tipReport;
    }

    /**
     * Modifica el tipo de reporte que se va a generar
     * C - Ventas por Cliente
     * P - Ventas por Producto
     * D - Vwentas Diarias
     * @param tipReport
     */
    public void setTipReport(String tipReport) {
        this.tipReport = tipReport;
    }

    /**
     * Obtiene los datos a visualizar del reporte de ventas diarias
     * @return
     */
    public List<ReporteVentasDia> getRepVtasDia(){
        repVtasDia = reportes.ventasDia(fechaInicio, fechaFin, ciudad);
        //repVtasDia = vtasDia.findAllVtaDia();
        return repVtasDia;

    }

    /**
     * Obtiene los datos a visualizar del reporte de ventas por producto
     * @return
     */
    public List<ReporteVentasProducto> getRepVtaProd(){
        repVtaProd = reportes.productoMasVendido();
        //repVtaProd = vtasProd.findAllVtaProd();
        return new ArrayList<ReporteVentasProducto>();

    }

    /**
     * Obtiene los datos a visualizar del reporte de ventas por cliente
     * @return
     */
    public List<ReporteVentasCliente> getRepVtaClie(){
        repVtaClie = reportes.ventasCliente(fechaInicio, fechaFin, cliente);
        //repVtaClie = vtasClie.findAllVtaClie();
        return repVtaClie;

    }

    /**
     * Accion que obtiene el tipo del reporte que se debe generar
     * @return
     */
    public String abrir(){
        return tipReport;
    }

}
